package com.wang.springbootinit.controller.admin;

import com.wang.springbootinit.common.BaseResponse;
import com.wang.springbootinit.common.ResultUtils;
import com.wang.springbootinit.model.dto.FeedbackQueryDTO;
import com.wang.springbootinit.model.dto.FeedbackReplyDTO;
import com.wang.springbootinit.service.FeedbackService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * 管理员端查看反馈控制器
 * 处理管理员对反馈的处理操作
 */
@RestController
@RequestMapping("/admin/feedback")
public class AdminFeedbackController {
    @Autowired
    private FeedbackService feedbackService;

    /**
     * 回复反馈
     * @param replyDTO 回复信息
     * @return 操作结果
     */
    @PostMapping("/reply")
    public BaseResponse replyFeedback(@RequestBody FeedbackReplyDTO replyDTO, HttpServletRequest request) {
        return ResultUtils.success(feedbackService.replyFeedback(replyDTO,request));
    }

    /**
     * 关闭反馈
     * @param replyDTO 反馈ID
     * @return 操作结果
     */
    @PostMapping("/close")
    public BaseResponse closeFeedback(@RequestBody FeedbackReplyDTO replyDTO) {
        return ResultUtils.success(feedbackService.closeFeedback(replyDTO));
    }

    /**
     * 分页查询反馈列表
     * @param queryDTO 查询参数
     * @return 反馈列表
     */
    @GetMapping("/page")
    public BaseResponse getFeedbackPage(FeedbackQueryDTO queryDTO) {
        return ResultUtils.success(feedbackService.getFeedbackPage(queryDTO));
    }

    /**
     * 获取反馈详情
     * @param feedbackId 反馈ID
     * @return 反馈详情
     */
    @GetMapping("/{id}")
    public BaseResponse getFeedbackById(@PathVariable("id") Long feedbackId) {
        return ResultUtils.success(feedbackService.getFeedbackById(feedbackId));
    }
} 